package com.jfm.jfmm.collector.entity.device;

import cn.hutool.core.lang.Dict;
import com.jfm.jfmm.collector.entity.template.SNMP;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * @author DYang
 * @since 2024-10-13 22:47
 */
@Data
public class Device {

    /**
     * 设备唯一标识
     */
    private String code;
    /**
     * 设备名称
     */
    private String name;
    /**
     * 设备标签
     */
    private String[] tags;
    /**
     * 是否启用
     */
    private boolean enabled;
    /**
     * 设备IP地址
     */
    private String host;
    /**
     * 关联模板
     */
    private String[] templates;
    /**
     * 当前服务器启用的采集协议
     */
    private String[] protocol;

    /**
     * snmp配置
     */
    private SNMP snmp;


    /**
     * 从配置文件中读取配置信息
     * @param ymlDicts
     * @return
     */
    public static List<Device> buildDevices(List<Dict> ymlDicts) {
        if (ymlDicts == null) return null;
        List<CollectDevice> collectDevices = CollectDevice.buildCollectDevices(ymlDicts);
        List<Device> devices = new ArrayList<>();
        collectDevices.forEach(collectDevice -> {
            devices.addAll(collectDevice.getDevices());
        });
        return devices;
    }
}
